// uniqueID = function() {
	// var id = 0;
	// return function() {
		// return id++;
	// }
// }();
// console.log(uniqueID());
// console.log(uniqueID());
// console.log(uniqueID());

// 闭包阶乘
// var a = (function(n)
// {
	// if (n < 1)
	// {
		// alert('invalid arguments');return 0;
	// }
	// if (n == 1)
	// {
		// return 1;
	// }
	// else
	// {
		// return n * arguments.callee(n - 1);
	// }
// });
// console.log(a(6));

// var i = 10;
// function a()
// {
	// console.log(i);
	// var i = 2;
	// console.log(i);
// };
// a();

// 内部函数的局部变量大于全局变量
// var name = "The Window";
// var object = {
	// name: 'My Object',
	// getNameFunc: function()
	// {
		// var that = this;
		// return function()
		// {
			// return that;
		// };
	// }
// };
// console.log(object.getNameFunc()());


// 当在一个循环中赋值函数时，这些函数将绑定同样的闭包
 // function buildList(list)
 // {
     // var result = [];
     // for (var i = 0; i < list.length; i++)
     // {
         // var item = 'item' + list[i];
         // result.push(function() {
             // console.log(item + ' ' + list[i]);
         // });
     // }
     // return result;
 // }
 // function testList()
 // {
     // var fnlist = buildList([1, 2, 3, 4, 6]);
     // for (var j = 0; j < fnlist.length; j++)
     // {
         // fnlist[j]();
     // }
 // }
 // testList();
 
// 修正闭包引起的问题版：
// function buildList(list)
// {
	// var result = [];
	// for (var i = 0; i < list.length; i++)
	// {
		// result.push(new function() {
			// var t = i;
			// var item = 'item' + list[t];
			// return function(){
				// console.log(item + ' ' + list[t]);
			// }
		// });
	// }
	// return result;
// }
// function testList()
// {
	// var fnlist = buildList([1, 2, 3, 4, 6]);
	// for (var j = 0; j < fnlist.length; j++)
	// {
		// fnlist[j]();
	// }
// }
// testList();

// function foo(x)
// {
	// var tmp = 3;
	// return function(y)
	// {
		// console.log('x = ' + x);
		// console.log('y = ' + y);
		// console.log('tmp = ' + tmp);
		// console.log(x + y + tmp);
		// x.memb = x.memb ? x.memb + 1 : 1;
		// console.log(x.memb);
	// };
// }
// var age = new Number(2);
// var bar = foo(age);
// bar(10);
// console.log('\n\r');
// bar(11);
// console.log('\n\r');
// bar(12);

var a = '17' - 9;
var b = '17' + 9;
console.log(a);
console.log(b);
var d;
console.log(d);
console.log(c);